The Biggest Mistake I Ever Made

RProgramming
code
analysis
history
mathematics
mistakes
historyOfMathematics
disease
Author

The usual

Published

April 22, 2025

Reading Advice: Readers who solely want to learn some history and less of my personal story/opinions should focus on the sections from “The Mistake” to “Reflection” inclusive.

Disclaimer: Dear reader you may disagree on the term “biggest”, but first allow me a brief bit of background of my musings on mistake making.

Over the years I’ve lived, I’ve made many mistakes. I firmly believe that frequent failure is a necessity of living a good life. If you don’t have a healthy number of mistakes, then you’re not doing ambitious enough stuff. Off the top of my head some mistakes I’ve made include: * Not talking about issues/thoughts around about the time they occurred * Not planning deeply enough ahead of important meetings/discussions * Not maintaining existing friendships/“connections” deeply enough * Investing in certain financial products * Being lazy/procrastinating on important topics * Not practicing what I preach - I think I make too few mistakes

I suspect several blog posts may flow from these in future, I may link to them as/when they are written. This post however covers my failure that I believe to be the “biggest”.

“Biggest”

As a mathematician at university, I swiftly realised the importance of precise definitions, and “big” in this post means something that’s impactful, important, insightful to myself at the time. It does not necessarily mean “consequential” to others, I doubt many people will care about this one. The impact of this mistake is not people losing money, suffering distress, or dying: thankfully any mistakes of mine that have led to two of these are rare (in particular the latter has never happened to my knowledge!), but this one had a profound impact on me when I discovered it. Sadly, I’ve defined one thing in terms of several others and by way of example, which is a bit of a cop-out, but hopefully it is a bit clearer what I mean by “big” for this post.

Background

I completed my dissertation at university on a topic in the history of mathematics, I chose it to be “The History of Mathematical Biology in the 20th Century”1. My research process was typically to take a piece of mathematical biology that I had been taught in the preceding ~3.5 years, and trace it back to its origins as far as I thought it was reasonable for me to do so, which was typically to roughly the time before computers started to really impact the subject. I then tacked on a broad summary of how all of my detailed analysis was secondary to Moore’s Law which ultimately enabled mathematical modelling of biology to actually test and refine plenty of its models empirically. I thought it was a reasonable effort, so did my assessors (presumably), and I still think it stands up as a not-totally-misleading summary of the subject. I can supply it upon request by email, but will not publish it here.

The Mistake

One piece of mathematical biology that is now sadly quite well-known as I write this in 2025 is the SIR model, which is well worth several blog posts by itself. I easily traced this back to the classic Kermack and McKendrick paper of 1927, which I vividly remember reading. One of the best parts about researching the history of mathematical biology was/is that the authors often spoke/wrote English (my native language) in something pretty indistinguishable to its modern form, and used mathematical notation quite easily recognisable today. This combination is in my experience pretty rare in the totality of the most well-known mathematics today. The authors only included 4 references, two of which were to some of McKendrick’s previous work (a classic academia smell!). None seemed to me to be particularly crucial to the origins of the mathematical part of the modelling idea. I think there were some secondary sources that I read that did not dissuade me from that rough prejudice.

This was a mistake. A big mistake…

Realisation

In May 2020, just after the first peak of the COVID-19 Pandemic in the UK, the Twitter account of Professor Adam Kucharski, who I followed at the time, posted a thread about Hilda Hudson (1881–1965), a mathematician who primarily worked on algebraic geometry. A few facts in there perked my interest generally, but I had a crushing realisation when it got to this post: she had worked on a mathematical model of the spread of malaria. I had vaguely recognised the name Hudson upon seeing the second post of the thread, but my stomach sank once I realised why.

To a historian of mathematics, the mathematicians and their stories are often gold-dust for communicating and understanding the past, especially when compared to the abstract stuff they often worked on. For most of human history, basically no-one had motivation/cause to think deeply about mathematics, and in the times/places where the subject started to grow serious roots it was very male-dominated, finding a female mathematician typically means that some new light can be shed on the subject.

Over the course of my dissertation I found a few interesting characters and stories, people like Nicolas Rashevsky and Alan Turing. As I scoured through texts, papers and books in libraries and chose what to pursue and what to ignore, I had slipped into a historical trap that I knew theoretically, but had never “felt” viscerally until May 2020. History is written by the winners2. These two men were already known to be ‘interesting’, in some sense, so at best I could slightly change the shading and colour of the already established image of them and their impact on mathematical biology, while totally ignoring the shadows and vague outlines which is where the truly interesting, unpainted portrait lay (and I assert often such stories/characters often lie).

The Mistake’s Status Today

The excellent Professor June Barrow-Green has recently decided to investigate some oft-overlooked women mathematicians, and thankfully this includes Hilda Hudson, focussing on her productive collaboration with the Nobel-prize winning doctor Sir Ronald Ross (1857–1932). I think it unarguable that she is currently doing a better job at covering Hudson’s life and parts of her work than I would have done when I missed my opportunity to study her. It doesn’t absolve me of my guilt, but it does give me hope that the direction of progress in research does tend towards the positive.

Kucharski now doesn’t use Twitter and prefers BlueSky, and has a substack where he has briefly revisited Hudson again, and it seems likely she will feature to some extent in his latest book, Proof. I don’t know if the two have teamed up in the past, are currently collaborating, or will collaborate in future. I hope they both bring new facts/insight into the light, and that Hudson achieves recognition in at least a rough proportion to her contribution to mathematical biology. I’d also be fascinated to learn about other parts of her life and work, for instance I am not aware of any deep historical research into her contributions to algebraic geometry or indeed aerospace engineering.

Reflection

One motivation in setting up this blog is to settle this particular score publicly as my first post. I wrote thousands of words in my dissertation, but I wasted my first (and likely only) big opportunity to make a genuine contribution to the historical literature. I could have influenced some very knowledgeable people to better understand the origins/context/motivations of some pretty important mathematical models of disease and why/when they came about (and did not come about). There are few more pressing problems in the world today than understanding disease. GiveWell’s top charities have long included charities that target malaria at/near the top. The first professionally trained mathematician (to my knowledge) to work on the disease using mathematics was an oft-overlooked woman in a very different time, and yet this is not at all widely known, and the reasons why she stopped to me don’t seem particularly compelling from a standpoint of making the world a better place. She was diverted away from it by war work, and didn’t return to it due to busy-ness and perhaps. Later it was the death of her collaborator and quite possibly other things. Ross never took her up on her offer of other mathematical assistance. I can conjecture why that is, but it would require further study.

Prevention Is Better Than Cure

With all mistakes, I think it’s important to ask questions like: “how could I have prevented it?”, “how could I have caught it sooner?” and/or “how can I avoid similar mistakes in future?”. I have pondered the former for over four years now, and have absolved myself of guilt and frustration, and chalk it off as a bit of a learning experience that I endeavour to tell people who relay their lesser mistakes to me. For the latter, I now tend to be rather obsessive at chasing links, citations and references back and forth through the literature if at all possible. I also endeavour to check wikipedia at a minimum for biographies, but am wary that it could suffer from similar availability biases that I suffered. For people who seem more obscure, have traits that make them likely to have been overlooked in the past, or are likely to still be alive today I scour through as many avenues as I can think of to pin down biographical information. See the excellent search tips at gwern.net for how to become a better information detective.

Further Reading

Later in my life, I came across a post on the LessWrong site, called The Importance of Saying “oops”. If you haven’t detested reading this post, please read that one for a more complete treatment of the importance of noticing and acknowledging mistakes, and several of the posts which reference it are well worth a read too.

Now that you’ve read this post in its entirety, did you spot another oversight? If yes, please let me know after you’ve checked that it isn’t the one in the final footnote. If not, feel free to read the post again with a fine toothcomb and/or think a little. I promise that not every post will finish with some sort of test, here’s the final footnote3.

Fun Side-Project

Below is some code that does a discrete-time version of the continuous epidemic models developed by Ross, Hudson, and the subsequent people they inspired. It uses the free, open-source R programming language. At some point I aim to host interactive shiny apps on this blog, or even allow readers to run the R code themselves in their browser, and this model is an excellent candidate. If any readers are familiar with R (or want to learn!), then feel free to take this code and change the seed, or any of the initial parameters while I work on making it genuinely interactive on the blog. None of the power of modern day computing to enable discrete-time techniques was available to the pioneers of mathematical epidemiology, so I will never cease to be grateful for their insights with limited data. Below I’ve listed some bullet points on what behaviour I think can be achieved with suitable choices of parameters, but maybe you can think of extensions or refinements to the model that bring new insights to bear? Can you work out from the mathematical models what the qualitative changes of behaviour mean in words? Can you spot a qualitative difference in which this model can differ from the continuous model discussed above (reading to the end of Ross & Hudson’s paper may help)?

  • By changing mixingRate, I can make the epidemic die out quicker
  • By changing several parameters, I can make the “peak” of the epidemic be flatter or sharper
  • By changing recoveryRate, I can make the epidemic “die out” while there is still a majority of susceptibles
  • By changing initialInfectedPopulation and the random seed, I can make the epidemic “die out” for certain seeds and not others
Show the code
library(ggplot2)
set.seed(91)

initialInfectedPopulation = 5
totalPopulation = 1000# increasing this leads to a more "continuous-looking" epidemic
mixingRate = 0.02# assumes uniform mixing in the population
infectivityRate = 0.1# assumes uniform probability of infection upon an interaction between a susceptible and an infected person
recoveryRate = 0.5# assumes fixed probability of recovery, independent of how long the person has been infected for
nTimeSteps = 50

simulateEpidemic = function (initialInfectedPopulation, totalPopulation, mixingRate, infectivityRate, recoveryRate, nTimeSteps) {
  storageMatrix = matrix(0, nrow=nTimeSteps+1, ncol=totalPopulation)
  # as the epidemic spreads, people (represented as columns of this matrix) move from 0 (susceptible) to 1 (infected) to 2 (recovered)
  # initialise some people as being infected (1), and the rest susceptible (0)
  storageMatrix[1, sample(seq_len(totalPopulation), initialInfectedPopulation, replace=FALSE)] = 1
  for (curTimeStep in seq_len(nTimeSteps)) {
    # first, randomly generate the number of interactions of each infected person at this timestep
    currentlyInfectedPeople = which(storageMatrix[curTimeStep, ] == 1)
    # pre-prepare the row for the next timestep
    nextTimeStep = storageMatrix[curTimeStep, ]
    for (curInfectedPerson in currentlyInfectedPeople) {
      currentInteractions = sample(seq_len(totalPopulation), rbinom(1, size=totalPopulation, prob=mixingRate))
      # print(currentInteractions)
      # determine whether each interaction leads to an infection being passed to a susceptible
      for (curPersonInteractedWith in currentInteractions) {
        nextTimeStep[curPersonInteractedWith] = ifelse(nextTimeStep[curPersonInteractedWith] == 0, rbinom(1, 1, prob=infectivityRate), nextTimeStep[curPersonInteractedWith])
      }
      
      # determine whether the infected person recovers
      nextTimeStep[curInfectedPerson] = nextTimeStep[curInfectedPerson] + rbinom(1, 1, prob=recoveryRate)
    }
    
    # update the storage matrix for the next time point
    storageMatrix[curTimeStep + 1, ] = nextTimeStep
  }
  
  return(storageMatrix)
}

epidemicFullTimeSeries = simulateEpidemic(initialInfectedPopulation=initialInfectedPopulation, totalPopulation=totalPopulation, mixingRate=mixingRate, infectivityRate=infectivityRate, recoveryRate=recoveryRate, nTimeSteps=nTimeSteps)

# Process the storage matrix information to display how the epidemic evolved, in "long" format for easier plotting
epidemicProfileInformation = data.frame(timeStep=rep(seq_len(nTimeSteps+1), 3),
                                        personType=rep(c("Susceptible", "Infected", "Recovered"), each=nTimeSteps+1),
                                        nPeople=c(rowSums(epidemicFullTimeSeries == 0), rowSums(epidemicFullTimeSeries == 1), rowSums(epidemicFullTimeSeries == 2)))

ggplot(epidemicProfileInformation, aes(x=timeStep, y=nPeople, col=personType)) +
  geom_line() +
  xlab("Time Step") +
  ylab("Number of people in category") +
  ggtitle("Toy Epidemic Simulation Based On the SIR Model")

Footnotes

  1. It swiftly became clear to me that that was ridiculously, ambitiously, naïvely broad, yet it was a mistake that I did not change course from.↩︎

  2. Like probably all pithy quotes, this isn’t a strictly true statement, but availability bias in history almost certainly corresponds with being around/motivated to either tell your story, or having colleagues/institutions that are more inclined to preserve/embellish your legacy. In my opinion, Hilda Hudson did not have these advantages. Some interesting discussion about this can be found in the comments and answers on this StackExchange discussion.↩︎

  3. I noted that there were four references in the Kermack–McKendrick paper. Two were McKendrick’s prior work, one was Ross & Hudson’s work that I neglected. What about the other? If you spotted this omission, well done, you have the keen eye that makes a good researcher. If you didn’t spot this, fear not, you’ve experienced my mistake in miniature, and you still have time to rectify it by reading the fourth reference and making your own mind up about its significance if you so desire. For those who speak German, can get access and enjoy considering a class of integral equations, you’re welcome! If you’re inspired to research the author, tell me all there is to know about Vladimir Fock! I strongly suspect (but do not know and am unlikely to research) that his contributions to science might have been overlooked/underappreciated by the separation between the Soviet state and English-speaking countries. Was there a reason Kermack and/or McKendrick considered his paper rather than others (Was it cutting edge? Does it show cross-country pollination of ideas/techniques? Was it because the Mathematische Zeitschrift was high-impact?)? You can swiftly see how the wide world of research opens up. Here are some more questions: Was Fock aware of his influence in this area? Was it significant? Were Ross/Hudson aware? Does it tell us anything about the underlying mathematics and links to other applications?. If your sleuthing led you to this oral history transcript, well done!↩︎